package com.git.smp.entitydoc;

import java.util.List;

public class ReqInfo {

    public static final String KEY_reqNo = "reqNo";
    public static final String KEY_reqName = "reqName";
    public static final String KEY_reqFullName = "reqFullName";
    public static final String KEY_revisionDate = "revisionDate";
    public static final String KEY_evaluateDate = "evaluateDate";
    public static final String KEY_pubDate = "pubDate";
    public static final String KEY_reviewer = "reviewer";
    public static final String KEY_initTestVersion = "initTestVersion";
    public static final String KEY_verifyTestVersionList = "verifyTestVersionList";
    public static final String KEY_passTestVersion = "passTestVersion";
    public static final String KEY_testCycle = "testCycle";
    public static final String KEY_tester = "tester";
    public static final String KEY_interfaceList = "interfaceList";
    public static final String KEY_images = "images";
    public static final String KEY_testOverview = "testOverview";
    public static final String KEY_testRange = "testRange";
    public static final String KEY_callList = "callList";
    public static final String KEY_bizDesc = "bizDesc";
    public static final String KEY_designDesc = "designDesc";
    public static final String KEY_sqlFile = "sqlFile";
    public static final String KEY_mappingFiles = "mappingFiles";
    public static final String KEY_sbconfigFile = "sbconfigFile";
    public static final String KEY_hostConfig = "hostConfig";



    /* 需求号
    *  REQM2022_0845_ESBYX_0004
    *  */
    private String reqNo;
    
    /* 需求号
     *  REQM2022_0845_ESBYX_0004
     *  */
     private String esbReqNo;
     
     

    public String getEsbReqNo() {
		return esbReqNo;
	}

	public void setEsbReqNo(String esbReqNo) {
		this.esbReqNo = esbReqNo;
	}

	/* 需求全称
    *  濉溪农商银行预售房资金监管系统(企业服务总线（ESB）配合)
    *  */
    private String reqFullName;

    /* 需求名称
    *  eg.濉溪农商银行预售房资金监管系统
    *  */
    private String reqName;

    /* 修订日期
    *  20230419
    *  */
    private String revisionDate;

    /* 估算日期
     *  20230319
     *  */
    private String evaluateDate;

    /* 发布日期
     *  20230319
     *  */
    private String pubDate;

    /* 修订人
    *  丁浩
    *  */
    private String reviewer;

    /* 测试版本列表
    *  T_103esbyx_uat59_20230418_V01
    *  T_103esbyx_uat59_20230418_V02
    *  T_103esbyx_uat59_20230418_V03
    *  */
    private List<String> testVersionList;

    /* 测试周期
    *  2023.4.12-2023.4.20
    *  */
    private String testCycle;

    /* 测试人
    *  袁红
    *  */
    private String tester;

    /**
     * 批次号
     */
    private String batchNo = "01";

    /**
     * 调用列表
     */
    private List<CallInfo> callInfos;

    /**
     * 接口列表
     */
    private List<InterfaceInfo> interfaceList;

    /**
     * 测试截图
     */
    private List<String> screenshots;

    /**
     * 配置文件
     */
    private ConfigFile configFile;

    /**
     * host配置信息
     */
    private String hostConfig;

    public String getReqNo() {
        return reqNo;
    }

    public String getReqFullName() {
        return reqFullName;
    }

    public String getReqName() {
        return reqName;
    }

    public String getRevisionDate() {
        return revisionDate;
    }

    public String getEvaluateDate() {
        return evaluateDate;
    }

    public String getPubDate() {
        return pubDate;
    }

    public String getReviewer() {
        return reviewer;
    }


    public List<String> getTestVersionList() {
        return testVersionList;
    }

    public String getTestCycle() {
        return testCycle;
    }

    public String getTester() {
        return tester;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public List<InterfaceInfo> getInterfaceList() {
        return interfaceList;
    }

    public List<CallInfo> getCallInfos() {
        return callInfos;
    }

    public List<String> getScreenshots() {
        return screenshots;
    }

    public ConfigFile getConfigFile() {
        return configFile;
    }

    public String getHostConfig() {
        if (hostConfig.isEmpty()) return "无";
        return hostConfig;
    }

    private ReqInfo(Builder builder) {
        this.reqNo = builder.reqNo;
        this.reqFullName = builder.reqFullName;
        this.reqName = builder.reqName;
        this.revisionDate = builder.revisionDate;
        this.evaluateDate = builder.evaluateDate;
        this.reviewer = builder.reviewer;
        this.testVersionList = builder.testVersionList;
        this.testCycle = builder.testCycle;
        this.tester = builder.tester;
        this.batchNo = builder.batchNo;
        this.callInfos = builder.callInfos;
        this.interfaceList = builder.interfaceList;
        this.configFile = builder.configFile;
        this.screenshots = builder.screenshots;
        this.hostConfig = builder.hostConfig;
        this.pubDate = builder.pubDate;
        this.esbReqNo = builder.esbReqNo;
    }

    @Override
    public String toString() {
        return "ReqBaseInfo{" +
                "reqNo='" + reqNo + '\'' +
                ", reqFullName='" + reqFullName + '\'' +
                ", reqName='" + reqName + '\'' +
                ", revisionDate='" + revisionDate + '\'' +
                ", evaluateDate='" + evaluateDate + '\'' +
                ", pubDate='" + pubDate + '\'' +
                ", reviewer='" + reviewer + '\'' +
                ", testVersionList='" + testVersionList + '\'' +
                ", testCycle='" + testCycle + '\'' +
                ", tester='" + tester + '\'' +
                ", batchNo='" + batchNo + '\'' +
                ", callInfos='" + callInfos + '\'' +
                ", interfaceList='" + interfaceList + '\'' +
                ", screenshots='" + screenshots + '\'' +
                ", configFile='" + configFile + '\'' +
                ", hostConfig='" + hostConfig + '\'' +
                '}';
    }

    public static final class Builder {
    	
    	 
        /* 需求号
         *  REQM2022_0845_ESBYX_0004
         *  */
        private String reqNo;
        

    	/**
    	 * 
    	 */
    	 private String  esbReqNo;
    	 

        /* 需求全称
         *  濉溪农商银行预售房资金监管系统(企业服务总线（ESB）配合)
         *  */
        private String reqFullName;

        /* 需求名称
         *  濉溪农商银行预售房资金监管系统
         *  */
        private String reqName;


        /* 修订日期
         *  20230419
         *  */
        private String revisionDate;

        /* 估算日期
         *  20230319
         *  */
        private String evaluateDate;

        /* 发布日期
         *  20230319
         *  */
        private String pubDate;

        /* 修订人
         *  丁浩
         *  */
        private String reviewer;

        /* 测试版本列表
         *  T_103esbyx_uat59_20230418_V01
         *  T_103esbyx_uat59_20230418_V02
         *  T_103esbyx_uat59_20230418_V03
         *  */
        private List<String> testVersionList;

        /* 测试周期
         *  2023.4.12-2023.4.20
         *  */
        private String testCycle;

        /* 测试人
         *  袁红
         *  */
        private String tester;

        /**
         * 批次号
         */
        private String batchNo = "1";

        /**
         * 调用信息列表
         */
        private List<CallInfo> callInfos;

        /**
         * 相关接口列表
         */
        private List<InterfaceInfo> interfaceList;

        /**
         * 测试截图列表
         */
        private List<String> screenshots;

        /**
         * 配置文件
         */
        private ConfigFile configFile;

        /**
         * host配置信息
         */
        private String hostConfig;


        public Builder reqNo(String reqNo) {
            this.reqNo = reqNo;
            return this;
        }

        public Builder reqFullName(String reqFullName) {
            this.reqFullName = reqFullName;
            return this;
        }

        public Builder reqName(String reqName) {
            this.reqName = reqName;
            return this;
        }

        public Builder revisionDate(String revisionDate) {
            this.revisionDate = revisionDate;
            return this;
        }

        public Builder evaluateDate(String evaluateDate) {
            this.evaluateDate = evaluateDate;
            return this;
        }

        public Builder pubDate(String pubDate) {
            this.pubDate = pubDate;
            return this;
        }

        public Builder reviewer(String reviewer) {
            this.reviewer = reviewer;
            return this;
        }

        public Builder testVersionList(List<String> testVersionList) {
            this.testVersionList = testVersionList;
            return this;
        }

        public Builder testCycle(String testCycle) {
            this.testCycle = testCycle;
            return this;
        }

        public Builder tester(String tester) {
            this.tester = tester;
            return this;
        }

        public Builder batchNo(String batchNo) {
            this.batchNo = batchNo;
            return this;
        }

        public Builder callInfos(List<CallInfo> callInfos) {
            this.callInfos = callInfos;
            return this;
        }

        public Builder interfaceList(List<InterfaceInfo> interfaceList) {
            this.interfaceList = interfaceList;
            return this;
        }

        public Builder screenshots(List<String> screenshots) {
            this.screenshots = screenshots;
            return this;
        }

        public Builder configFile(ConfigFile configFile) {
            this.configFile = configFile;
            return this;
        }

        public Builder hostConfig(String hostConfig) {
            this.hostConfig = hostConfig;
            return this;
        }
        
        public Builder esbReqNo(String esbReqNo) {
            this.esbReqNo = esbReqNo;
            return this;
        }

        public ReqInfo build() {
            return new ReqInfo(this);
        }

    }

	public void setReqNo(String reqNo) {
		this.reqNo = reqNo;
	}

	public void setReqFullName(String reqFullName) {
		this.reqFullName = reqFullName;
	}

	public void setReqName(String reqName) {
		this.reqName = reqName;
	}

	public void setRevisionDate(String revisionDate) {
		this.revisionDate = revisionDate;
	}

	public void setEvaluateDate(String evaluateDate) {
		this.evaluateDate = evaluateDate;
	}

	public void setPubDate(String pubDate) {
		this.pubDate = pubDate;
	}

	public void setReviewer(String reviewer) {
		this.reviewer = reviewer;
	}

	public void setTestVersionList(List<String> testVersionList) {
		this.testVersionList = testVersionList;
	}

	public void setTestCycle(String testCycle) {
		this.testCycle = testCycle;
	}

	public void setTester(String tester) {
		this.tester = tester;
	}

	public void setBatchNo(String batchNo) {
		this.batchNo = batchNo;
	}

	public void setCallInfos(List<CallInfo> callInfos) {
		this.callInfos = callInfos;
	}

	public void setInterfaceList(List<InterfaceInfo> interfaceList) {
		this.interfaceList = interfaceList;
	}

	public void setScreenshots(List<String> screenshots) {
		this.screenshots = screenshots;
	}

	public void setConfigFile(ConfigFile configFile) {
		this.configFile = configFile;
	}

	public void setHostConfig(String hostConfig) {
		this.hostConfig = hostConfig;
	}
    
    
    
    


}
